﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using DevExpress.XtraBars;
using DevExpress.XtraBars.Ribbon;
using DevExpress.Utils;
using DevExpress.XtraBars.Helpers;
using DevExpress.LookAndFeel;

namespace PRE
{
    public partial class FrmMain : DevExpress.XtraBars.Ribbon.RibbonForm
    {

        #region Variable
        private const string STR_Nguoidung = "";
        public static UTL.Session _sss = new UTL.Session();
        #endregion

        #region Inits

        #region FrmMain
        public FrmMain()
        {
            InitializeComponent();
            InitSkinGallery();
        }

        #endregion

        #region FrmMain_Load

       private void FrmMain_Load_1(object sender, EventArgs e)
        {        
            bbiDangnhap_ItemClick(sender, null);
            timer_Tick(sender, null);
        }

        #endregion

        #endregion

        #region Functions

        #region Hiển thị thời gian
        private void timer_Tick(object sender, EventArgs e)
        {        
            bsiThoigian.Caption = "Thời gian: " + DateTime.Now.Hour + ":" + DateTime.Now.Minute + ":" + DateTime.Now.Second;
        }
        #endregion

        #endregion

        #region Menu chính

        #region Hệ thống

        #region Đăng nhập
        private void bbiDangnhap_ItemClick(object sender, ItemClickEventArgs e)
        {
            Login.FrmLogin x = new Login.FrmLogin();
            x.ShowDialog();

            string _quyen = _sss.Role.ToString();

            if (_sss.Login)
            {
                if (_quyen == "Admininistrator")
                {
                    bsiUser.Caption = "Xin chào: " + _sss.Name;
                    bsiQuyen.Caption = "Quyền: " + _sss.Role;
                    rib_Quanlydanhmuc.Visible = true;
                    rib_Quanlyluong.Visible = true;
                    rib_BaoCaoThongKe.Visible = true;
                    rib_Help.Visible = true;
                }
                else if (_quyen == "Manager")
                {
                    bsiUser.Caption = "Xin chào: " + _sss.Name;
                    bsiQuyen.Caption = "Quyền: " + _sss.Role;
                    rib_Quanlydanhmuc.Visible = true;
                    ribG_Danhmucnhanvien.Visible = false;
                    ribG_Danhmuctrinhdo.Visible = false;                    
                    rib_Quanlyluong.Visible = true;
                    bbi_Capnhatmucluong.Visibility = BarItemVisibility.Never;                   
                    rib_BaoCaoThongKe.Visible = true;

                    bbi_User.Visibility = BarItemVisibility.Never;
                    bbi_VaiTro.Visibility = BarItemVisibility.Never;

                }
                else if (_quyen == "User")
                {
                    bsiUser.Caption = "Xin chào: " + _sss.Name;
                    bsiQuyen.Caption = "Quyền: " + _sss.Role;
                    rib_Quanlydanhmuc.Visible = true;
                    ribG_Danhmucnhanvien.Visible = false;
                    ribG_Danhmuctrinhdo.Visible = false;
                    ribG_Khenthuongkyluat.Visible = false;
                    rib_Quanlyluong.Visible = true;
                    bbi_Capnhatnangluong.Visibility = BarItemVisibility.Never;
                    bbi_Capnhatmucluong.Visibility = BarItemVisibility.Never;
                    rib_BaoCaoThongKe.Visible = true;
                    ribG_Quanlybaocao.Visible = false;
                    ribG_Quanlythongke.Visible = false;

                    bbi_User.Visibility = BarItemVisibility.Never;
                    bbi_VaiTro.Visibility = BarItemVisibility.Never;
                }
                else if (_quyen == "Gest")
                {
                    bsiUser.Caption = "Xin chào: " + _sss.Name;
                    bsiQuyen.Caption = "Quyền: " + _sss.Role;
                    rib_Quanlydanhmuc.Visible = true;
                    ribG_Danhmucnhanvien.Visible = false;
                    ribG_Danhmuctrinhdo.Visible = false;
                    ribG_Khenthuongkyluat.Visible = false;
                    rib_Quanlyluong.Visible = true;
                    ribG_Luong.Visible = false;
                    rib_BaoCaoThongKe.Visible = true;                   
                    ribG_Quanlybaocao.Visible = false;
                    ribG_Quanlythongke.Visible = false;
                    ribG_Tracuu.Visible = false;
                    ribG_NguoiDung.Visible = false;
                }
            }
            else
            {
                rib_HeThong.Visible = true;
                ribG_NguoiDung.Visible = false;
                rib_Quanlydanhmuc.Visible = true;
                ribG_Danhmucnhanvien.Visible = false;
                ribG_Danhmuctrinhdo.Visible = false;
                ribG_Khenthuongkyluat.Visible = false;
                rib_Quanlyluong.Visible = true;
                ribG_Luong.Visible = false;             
                rib_BaoCaoThongKe.Visible = true;
                ribG_Quanlybaocao.Visible = false;
                ribG_Quanlythongke.Visible = false;
                rib_Help.Visible = true;
                ribG_Tracuu.Visible = false;
            }
        }
        #endregion

        #region Đăng nhập lại
        private void bbi_Dangnhap_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                if (MessageBox.Show("Thoát ứng dụng và đăng nhập lại ?", "UIS - Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
                {
                    try
                    {
                        System.Diagnostics.Process.Start(Application.ExecutablePath);
                        Application.Exit();
                    }
                    catch { }
                }
            }
            catch { }
        }
        #endregion

        #region Thoát
        private void btn_Close_ItemClick(object sender, ItemClickEventArgs e)
        {
            try
            {
                if (MessageBox.Show("Thoát ứng dụng ?", "Thông báo", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return;
                Application.Exit();
            }
            catch { }
        }
        #endregion

        #region Đổi mật khẩu

        private void btn_DoiMatKhau_ItemClick(object sender, ItemClickEventArgs e)
        {
            Login.FrmChangePassword x = new Login.FrmChangePassword();
            x.ShowDialog();
        }
        #endregion

        #region Người dùng
        private void bbi_User_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmUser) return;
            var frm = new Catalog.FrmUser() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Quyền
        private void bbi_VaiTro_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmVaitro) return;
            var frm = new Catalog.FrmVaitro() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Giao diện
        void InitSkinGallery()
        {
            SkinHelper.InitSkinGallery(rgbiSkins, true);
        }
        #endregion

        #region Đóng / Mở tab bằng memu

        #region Đóng cửa sổ này
        private void mnuCloseThis_Click_1(object sender, EventArgs e)
        {
            try
            {
                Form frm = xtraTabbedMdiManager.SelectedPage.MdiChild as Form;
                if (frm != null)
                {
                    frm.Close();
                }
            }
            catch { }
        }
        #endregion

        #region Đóng tất các cửa sổ khác
        private void mnuCloseButThis_Click_1(object sender, EventArgs e)
        {
            try
            {
                Form frm = xtraTabbedMdiManager.SelectedPage.MdiChild as Form;
                foreach (Form frmOther in xtraTabbedMdiManager.MdiParent.MdiChildren)
                    if (frmOther != frm)
                        frmOther.Close();
            }
            catch { }
        }

        #endregion

        #region Đóng tất cả
        private void mnuCloseAll_Click_1(object sender, EventArgs e)
        {
            try
            {
                foreach (Form frmOther in xtraTabbedMdiManager.MdiParent.MdiChildren)
                    frmOther.Close();
            }
            catch { }
        }
        #endregion

        #region private void xtraTabbedMdiManager_MouseUp(object sender, MouseEventArgs e)
        private void xtraTabbedMdiManager_MouseUp(object sender, MouseEventArgs e)
        {
            try
            {
                if (e != null)
                {
                    if (e.Button == MouseButtons.Right && xtraTabbedMdiManager.SelectedPage != null)
                    {
                        Rectangle rec = xtraTabbedMdiManager.SelectedPage.TabControl.ViewInfo.SelectedTabPageViewInfo.Bounds;
                        if (e.X > rec.Left && e.X < rec.Right && e.Y > rec.Top && e.Y < rec.Bottom)
                        {
                            if (xtraTabbedMdiManager.Pages.Count == 1)
                                mnuCloseButThis.Enabled = false;
                            else
                                mnuCloseButThis.Enabled = true;
                            cmsCloseTab.Show(new Point(MousePosition.X + 3, MousePosition.Y + 3));
                        }
                    }
                }
            }
            catch { }
        }
        #endregion
        #endregion
    
        #endregion

        #region Quản lý danh mục

        #region Quản lý nhân viên

        #region Cập nhật nhân viên
        private void bbi_Capnhatnhanvien_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatnhanvien) return;
            var frm = new Catalog.FrmCapnhatnhanvien() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật chức vụ
        private void bbi_Capnhatchucvu_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatchucvu) return;
            var frm = new Catalog.FrmCapnhatchucvu() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật phòng ban
        private void bbi_Capnhatphongban_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatphongban) return;
            var frm = new Catalog.FrmCapnhatphongban() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Thêm chức vụ cho nhân viên
        private void bbi_Giuchucvu_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmGiuachucvu) return;
            var frm = new Catalog.FrmGiuachucvu() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #endregion

        #region Quản lý văn bằng, chứng chỉ

        #region Cập nhật trình độ chuyên môn
        private void bbi_Capnhatchuyenmon_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhattrinhdochuyenmon) return;
            var frm = new Catalog.FrmCapnhattrinhdochuyenmon() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật trình độ sư phạm
        private void bbi_Capnhatsupham_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhattrinhdosupham) return;
            var frm = new Catalog.FrmCapnhattrinhdosupham() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật trình độ chính trị
        private void bbi_Capnhatchinhtri_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhattrinhdochinhtri) return;
            var frm = new Catalog.FrmCapnhattrinhdochinhtri() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật trình độ tin học
        private void bbi_Capnhattinhoc_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhattrinhdotinhoc) return;
            var frm = new Catalog.FrmCapnhattrinhdotinhoc() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật trình độ ngoại ngữ
        private void bbi_Capnhatngoaingu_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhattrinhdongoaingu) return;
            var frm = new Catalog.FrmCapnhattrinhdongoaingu() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #endregion

        #region Quản lý khen thưởng, kỹ luật

        #region Cập nhật khen thưởng
        private void bbi_Capnhatkhenthuong_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatkhenthuong) return;
            var frm = new Catalog.FrmCapnhatkhenthuong() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #region Cập nhật kỹ luật
        private void bbi_Capnhatkyluat_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatquyetdinhkyluat) return;
            var frm = new Catalog.FrmCapnhatquyetdinhkyluat() { MdiParent = this };

            frm.Show();
        }
        #endregion

        #endregion

        #endregion

        #region Quản lý lương

        #region Cập nhật quyết định nâng lương
        private void bbi_Capnhatnangluong_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Catalog.FrmCapnhatquyetdinhnangluong) return;
            var frm = new Catalog.FrmCapnhatquyetdinhnangluong() { MdiParent = this };

            frm.Show();
        }
        #endregion
        
        #region Cập nhật mức lương cơ bản
        private void bbi_Capnhatmucluong_ItemClick(object sender, ItemClickEventArgs e)
        {
            var frm = new Salary.FrmCapnhatmucluong();
            frm.Show();
        }
        #endregion

        #region Xem bảng lương
        private void bbi_Xembangluong_ItemClick(object sender, ItemClickEventArgs e)
        {
            var frm = new Salary.FrmXembangluong();
            frm.Show();
        }
        #endregion

        #endregion

        #region Quản Lý Báo Cáo Thống Kê

        #region Quản Lý Báo Cáo

        #region Danh sách nhân viên được khen thưởng

        private void bbi_Danhsachkhenthuong_ItemClick(object sender, ItemClickEventArgs e)
        {        
            foreach (var x in MdiChildren) if (x is Baocao.FrmDanhsachduockhenthuong) return;
            var frm = new Baocao.FrmDanhsachduockhenthuong() { MdiParent = this };

            frm.Show();
        }

        #endregion

        #region Danh sách nhân viên bị kỹ luật
       private void bbi_Danhsachkyluat_ItemClick(object sender, ItemClickEventArgs e)
        {        
           foreach (var x in MdiChildren) if (x is Baocao.FrmDanhsachbikyluat) return;
           var frm = new Baocao.FrmDanhsachbikyluat() { MdiParent = this };

           frm.Show();
       }
        #endregion

        #region Danh sách nhân viên được nâng lương
       private void bbi_Nangluong_ItemClick(object sender, ItemClickEventArgs e)
        {        
           foreach (var x in MdiChildren) if (x is Baocao.FrmDanhsachduocnangluong) return;
           var frm = new Baocao.FrmDanhsachduocnangluong() { MdiParent = this };

           frm.Show();
       }
        #endregion      

        #endregion

        #region Quản Lý Thống Kê

        #region Tuyển theo năm
        private void bbi_Tuyentheonam_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Thongke.FrmTuyentheonam) return;
            var frm = new Thongke.FrmTuyentheonam() { MdiParent = this };

            frm.Show();
        }
        #endregion
       
        #region Theo phòng ban
        private void bbi_Danhsachphongban_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Thongke.FrmTheophongban) return;
            var frm = new Thongke.FrmTheophongban() { MdiParent = this };

            frm.Show();
        }
        #endregion       

        #region Theo trình độ
        private void bbi_Chuyenmon_ItemClick(object sender, ItemClickEventArgs e)
        {
            foreach (var x in MdiChildren) if (x is Thongke.FrmTheotrinhdo) return;
            var frm = new Thongke.FrmTheotrinhdo() { MdiParent = this };

            frm.Show();
        }
        #endregion                

        #endregion        

        #endregion

        #region Tra Cứu

        //#region Thông tin sách
        //private void bbi_ThongTinSach_ItemClick(object sender, ItemClickEventArgs e)
        //{
        //    foreach (var x in MdiChildren) if (x is Catalog.FrmBookInfo) return;
        //    var frm = new Catalog.FrmBookInfo() { MdiParent = this };

        //    frm.Show();
        //}
        //#endregion

        //#region Thông tin đọc giả
        //private void bbi_ThongTinDocGia_ItemClick(object sender, ItemClickEventArgs e)
        //{
        //    foreach (var x in MdiChildren) if (x is Catalog.FrmBorrowersInfo) return;
        //    var frm = new Catalog.FrmBorrowersInfo() { MdiParent = this };

        //    frm.Show();
        //}
        //#endregion

        #endregion

        #region Help!

        #region Xem thông tin cá nhân
        private void bbi_Xemthongtin_ItemClick(object sender, ItemClickEventArgs e)
        {           
            var frm = new Help.FrmXemthongtinnhanvien();
            frm.Show();
        }
        #endregion       

        #region Hướng Dẫn Sử Dụng

        #endregion

        #region Thông Tin Phần Miền
        private void bbi_Thongtinphanmem_ItemClick(object sender, ItemClickEventArgs e)
        {
            var frm = new Help.FrmThongTinPhanMem();
            frm.Show();
        }
        #endregion              

        #endregion

        #endregion

    }
}
